package com.aaa.web.dao.iemployeedao;

import com.aaa.entity.BackRole;
import com.aaa.entity.Per;
import com.aaa.entity.Permission;
import com.aaa.web.commons.EmpQuery;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Mapper
@Component
public interface IRoleDao {
    /**
     * @Author yyh
     * @Description //获取所有的角色信息
     * @Date 2019/1/3 9:53 
     * @Param [query]
     * @return java.util.List<java.util.Map>
     **/
    List<Map> getAllRole(EmpQuery query);
    /**
     * @Author yyh
     * @Description //获取所有角色的数量
     * @Date 2019/1/3 9:56 
     * @Param []
     * @return java.lang.Integer
     **/
    Integer getRoleCount();
    /**
     * @Author yyh
     * @Description //根据账户获取角色信息
     * @Date 2019/1/3 9:56 
     * @Param [telephone]
     * @return java.util.Map
     **/
    Map getRoleById(String telephone);
    /**
     * @Author yyh
     * @Description //获取父级目录及子级目录
     * @Date 2019/1/3 9:56
     * @Param []
     * @return java.util.List<com.aaa.entity.Per>
     **/
    List<Per> getAllParentPer();
    List<Per> getAllChildPer(String id);
    List<Per> getAllChildCPer(String id);
    List<Per> getParentPer(Integer id);
    List<Per> getChildPer(Integer id);
    List<Per> getChildCPer(Integer id);
    /**
     * @Author yyh
     * @Description //删除某个权限
     * @Date 2019/1/3 9:57 
     * @Param [id]
     * @return java.lang.Integer
     **/
    Integer deletePer(Integer id);
    /**
     * @Author yyh
     * @Description //添加某个权限
     * @Date 2019/1/3 9:57 
     * @Param [map]
     * @return java.lang.Integer
     **/
    Integer insertPer(Map map);
    /**
     * @Author yyh
     * @Description //更新某个角色
     * @Date 2019/1/3 9:58 
     * @Param [role]
     * @return java.lang.Integer
     **/
    Integer updatePer(BackRole role);
    int[] getParRole(Integer id);
    Integer insertParRole(Map map);
    int[] getParPRole(Integer id);
    Integer insertParPRole(Map map);
    /**
     * @Author yyh
     * @Description //更新角色的状态
     * @Date 2019/1/3 9:58 
     * @Param [role]
     * @return java.lang.Integer
     **/
    Integer updateRoleState(BackRole role);
    /**
     * @Author yyh
     * @Description //删除某个角色
     * @Date 2019/1/3 9:58 
     * @Param [id]
     * @return java.lang.Integer
     **/
    Integer deleteRole(Integer id);
    Integer deleteRp(Integer id);
    /**
     * @Author yyh
     * @Description //查询某个角色是否存在
     * @Date 2019/1/3 9:58 
     * @Param 
     * @return 
     **/

    Integer getRoleisExist(Integer id);
    /**
     * @Author yyh
     * @Description //添加角色
     * @Date 2019/1/3 10:16
     * @Param [role]
     * @return java.lang.Integer
     **/
    Integer addRole(BackRole role);


}
